package com._58city.spark.app.dao;

import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.google.common.base.Splitter;
import com.google.common.collect.Lists;

public class AppStartEntity {
	private List<String> list = null; 
	private static Splitter log_splitter = Splitter.on("\t");
	
	public AppStartEntity(String log){
		list = Lists.newArrayList(log_splitter.split(log));
	}
	
	/**
	 * 判断是否解析成功
	 * @return
	 */
	public boolean judgeResolve(){
		if(list == null || list.size() < 11){
			return false;
		}
		return true;
	}
	/**
	 * 产品id
	 * @param def
	 * @return
	 */
	public String getProductorid(String def){
		return getString(0, def);
	}
	/**
	 * 产品id
	 * @param def
	 * @return
	 */
	public String getProductorid(){
		return getString(0, null);
	}
	/**
	 * imei唯一标示
	 * @param def
	 * @return
	 */
	public String getImei(String def){
		return getString(1, def);
	}
	/**
	 * imei唯一标示
	 * @param def
	 * @return
	 */
	public String getImei(){
		return getString(1, null);
	}
	/**
	 * 渠道id
	 * @param def
	 * @return
	 */
	public String getChannel(String def){
		return getString(2, def);
	}
	/**
	 * 渠道id
	 * @param def
	 * @return
	 */
	public String getChannel(){
		return getString(2, null);
	}
	/**
	 * 设备型号
	 * @param def
	 * @return
	 */
	public String getUa(String def){
		return getString(3, def);
	}
	/**
	 * 设备型号
	 * @param def
	 * @return
	 */
	public String getUa(){
		return getString(3, null);
	}
	
	/**
	 * 操作系统
	 * @param def
	 * @return
	 */
	public String getOs(String def){
		return getString(4, def);
	}
	/**
	 * 操作系统
	 * @param def
	 * @return
	 */
	public String getOs(){
		return getString(4, null);
	}
	/**
	 * 操作系统版本
	 * @param def
	 * @return
	 */
	public String getOsv(String def){
		return getString(5, def);
	}
	/**
	 * 操作系统版本
	 * @param def
	 * @return
	 */
	public String getOsv(){
		return getString(5, null);
	}	
	
	/**
	 * ip地址
	 * @param def
	 * @return
	 */
	public String getIp(String def){
		return getString(6, def);
	}
	/**
	 * ip地址
	 * @param def
	 * @return
	 */
	public String getIp(){
		return getString(6, null);
	}
	/**
	 * 网络接入点
	 * @param def
	 * @return
	 */
	public String getApn(String def){
		return getString(7, def);
	}
	/**
	 * 网络接入点
	 * @param def
	 * @return
	 */
	public String getApn(){
		return getString(7, null);
	}
	
	/**
	 * 客户端版本
	 * @param def
	 * @return
	 */
	public String getVersion(String def){
		return getString(8, def);
	}
	/**
	 * 客户端版本
	 * @param def
	 * @return
	 */
	public String getVersion(){
		return getString(8, null);
	}
	
	/**
	 * 获取电话号码
	 * @param def
	 * @return
	 */
	public String getM(String def){
		return getString(9,def);
	}
	/**
	 * 获取电话号码
	 * @param def
	 * @return
	 */
	public String getM(){
		return getString(9,null);
	}
	
	
	/**
	 * 时间
	 * @param def
	 * @return
	 */
	public String getTime(String def){
		return getString(10,def);
	}
	/**
	 * 时间
	 * @param def
	 * @return
	 */
	public String getTime(){
		return getString(10,null);
	}
	
	
	/**
	 * 获取指定下标数组值
	 * @param index 下标
	 * @param def 如果空返回的默认值
	 * @return
	 */
	private String getString(int index,String def){
		if(!judgeResolve() || index >= list.size())
			return def;
		String rs = list.get(index);
		if(StringUtils.isBlank(rs) || "-".equals(rs)){
			return def;
		}
		return rs;
	}
	
}
